#ifndef __COMPLEX_H_INCLUDED__
#define __COMPLEX_H_INCLUDED__


class Complex
{
	private:
		double real;//atribute
		double imag;//atribute
	public:
		Complex();//constructor implicit
		Complex(double , double );//constructor explicit
  		Complex(const Complex &);//constructor de copiere
		Complex(const Complex *);//constructor de copiere
		~Complex();//desctructor

		double getReal();//acces partea reala
		double getImag();
		void setReal(double );//modificator
		void setImag(double );

		Complex Suma(const Complex &);
		Complex Suma(const Complex *);
		Complex Suma(double );
		Complex Scadere(const Complex &);
		Complex Scadere(const Complex *);
		Complex Scadere(double );
		Complex Inmultire(const Complex &);
		Complex Inmultire(const Complex *);
		Complex Inmultire(double );
                Complex Impartire(const Complex &);
		Complex Impartire(const Complex *);
		Complex Impartire(double );
		Complex Conjugat(const Complex &);
		Complex Conjugat(const Complex *);
		Complex Radical(void);


		Complex operator+(const Complex &);
		Complex operator+(const Complex *);
		Complex operator+(double );
		Complex operator-(const Complex &);
		Complex operator-(const Complex *);
		Complex operator-(double );
		Complex operator*(const Complex &);
		Complex operator*(const Complex *);
		Complex operator*(double );
		Complex operator/(const Complex &);
		Complex operator/(const Complex *);
		Complex operator/(double );
		Complex operator^(int );
		bool operator==(const Complex &);
		bool operator==(const Complex *);
		bool operator==(double );
		friend bool operator==(double , const Complex &);
		bool operator<(const Complex &);
		bool operator<(const Complex *);
		bool operator<(double );
		friend bool operator<(double , const Complex &);
		bool operator<=(const Complex &);
		bool operator<=(const Complex *);
		bool operator<=(double );
		friend bool operator<=(double , const Complex &);
		bool operator>(const Complex &);
		bool operator>(const Complex *);
		bool operator>(double );
		friend bool operator>(double , const Complex &);
		bool operator>=(const Complex &);
		bool operator>=(const Complex *);
		bool operator>=(double );
		friend bool operator>=(double , const Complex &);
		Complex operator++();
		Complex operator--();
		
};
#endif

//!Ceea ce se afla intre doua acolade se numeste namespace;
